
import java.awt.Image;
import java.util.*;

import kierunek.Kierunek;
import static kierunek.Kierunek.*;
//import static rodzajpola.RodzajPola.*;
//import static stale.Stale.*;
public class Wrog extends Istota{
	public Wrog (OknoPlanszy mO, Image wiz){
		 super(mO,wiz);
				
			//TODO pozycja wczytywana z mapki
			x=40;
			y=20;
			predkosc=0.004;
			skret=DOL;
	}
	public void animuj(long czasPoprzedni){
		predkosc=0.004;
		gdzieIsc();
		szukajPacmana();
		if (Math.round(x)==Math.round(mojeOkno.pacman.x)&&Math.round(mojeOkno.pacman.y)==Math.round(y)) mojeOkno.pacman.umrzyj();
		super.animuj(czasPoprzedni);
		
			
	}
	void szukajPacmana(){
		gdzieWidzePacmana();
	}
	Kierunek gdzieWidzePacmana(){
		if(mojeOkno.obecnyPoziom.czyWidoczne((int)Math.round(x),(int) Math.round(y),(int) Math.round(mojeOkno.pacman.x), (int)Math.round(mojeOkno.pacman.y))){
			if(Math.round(x)==Math.round(mojeOkno.pacman.x)){
				predkosc=0.009;
				skret=y>mojeOkno.pacman.y?GORA:DOL;
			}
			if(Math.round(y)==Math.round(mojeOkno.pacman.y)){
				predkosc=0.009;
				skret=x>mojeOkno.pacman.x?LEWO:PRAWO;
			}
		}
		/*for (int i= (int) Math.round(x) ; i>0 && i<KAFLE_NA_SZER && mojeOkno.obecnyPoziom.jakiePole((int)Math.round(y),i)==MUR ; ++i){
			Math.round(mojeOkno.pacman.x)
		}*/
		
		/*if (Math.round(mojeOkno.pacman.x) == Math.round(x)){
			if(mojeOkno.obecnyPoziom.czyWidoczne((int)Math.round(x),(int) Math.round(y),(int) Math.round(mojeOkno.pacman.x), (int)Math.round(mojeOkno.pacman.y))){
				System.out.println("Widze pacmana w pionie!");
			}
			
			
		}
		else if (Math.round(mojeOkno.pacman.y) == Math.round(y))
			System.out.println("Widze pacmana w poziomie!");*/
		return ZERO;
	}
	public void gdzieIsc(){
		Random los = new Random(); 
		if(czyMogePrzedSiebie()){
			if(los.nextDouble()<0.01){
			
				if(los.nextDouble()<0.5){
					skret =prawoSkret(gdzieIde());
				}
				else{
					skret =lewoSkret(gdzieIde());
				}
			}
		}
		else if(!czyMogePrzedSiebie()){
			if(los.nextDouble()<0.5){
				skret =prawoSkret(skret);
			}
			else{
				skret =lewoSkret(skret);
			}
			
		}
		else if( czyMogeWBok(Kierunek.prawoSkret(skret)) ){
			//skret =Kierunek.prawoSkret(skret);
		}
		
		/*if(los.nextDouble()<0.05){
			switch (los.nextInt(4)){
				case 0 : 
					skret = LEWO;
					break;
				case 1 :
					skret = PRAWO;
					break;
				case 2 : 
					skret = GORA;
					break;
				default:
					skret = DOL; 
			 }
		 }*/
	}
}
